# 给定一个包含电话号码列表（一行一个电话号码）的文本文件 file.txt，写一个单行 bash 脚本输出所有有效的电话号码。
# 你可以假设一个有效的电话号码必须满足以下两种格式： (xxx) xxx-xxxx 或 xxx-xxx-xxxx。（x 表示一个数字）
# 你也可以假设每行前后没有多余的空格字符。
# 示例：
#     假设 file.txt 内容如下：
#         987-123-4567
#         123 456 7890
#         (123) 456-7890
#     你的脚本应当输出下列有效的电话号码：
#         987-123-4567
#         (123) 456-7890

# -P 可以让grep使用perl的正则表达式语法，因为perl的正则更加多元化，能实现更加复杂的场景
grep -P '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt

awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt

gawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/'